import { reactive } from "vue";
import { customAlphabet } from "nanoid"
const nanoid = customAlphabet("1234567890abcdef", 8)
import Emittery from "emittery"
const event = new Emittery()

class Equip {

}

class Weapon extends Equip {
  atk: [number, number]
}


class Armor extends Equip {
  hp: number
}




interface AuraDataSet {
  name: string
  buffs: number[]
  condition: (sub, obj, para, env) => boolean
  description: string
  range: {
    condition: (sub, obj, para, env) => boolean
    pos: ('this' | 'enemy')[]
  }
}







event.on('timing', () => {

})
async function start() {
  await event.emitSerial('timing', ['start'])
}




class Buff {
  id: string
  buff_id: string
  aura?: Aura
  effects: Effect[]
  constructor(id, buff_id, caster, host, custom_num, battle) {

  }
}

class Effect {
  buff: Buff
}